Configuring Flamy

Flamy looks for its configuration file at $FLAMY_HOME/conf/flamy.properties. This location can be overridden when starting flamy with the -config-file option.

To get started configuring flamy, we recommend to rename the file $FLAMY_HOME/conf/flamy.properties.template to $FLAMY_HOME/conf/flamy.properties and start editing it.

Despite the file extension, flamy’s configuration uses the HOCON syntax, which is a superset of both the JSON syntax and the Java properties syntax (almost). It means you can write the properties either like a regular java.properties file, or choose any level of nesting for your parameters.

For troubleshooting, you can check your configuration with the command flamy config [--on ENV] This will display all the values that are active in your configuration for the specified environment.

Global properties

flamy.model.dir.paths List[String]
Space-separated list of folder paths where flamy will look for the SQL files of your model.

flamy.variables.path Option[String]
Path to the file where the variables are defined.

flamy.udf.classpath Option[String]
List of jar paths (separated with `:`) where flamy will look for the custom Hive UDFs. Don’t forget to also add them as CREATE TEMPORARY FUNCTION in the model’s presets file.

flamy.exec.parallelism Int (default: 5)
Controls the maximum number of jobs that flamy is allowed to run simultaneously.

Environment properties

These properties can be set for each environment you want to configure. Just replace <ENV> by the name of the correct environment

flamy.env.<ENV>.hive.server.uri String
URI of the Hive Server 2.

flamy.env.<ENV>.hive.server.login String (default: “user”)
Login used to connect to the Hive Server 2.

flamy.env.<ENV>.hive.presets.path Option[String]
Path to the .hql presets file for this environment. These presets will be executed before every query run against this environment.

flamy.env.<ENV>.hive.meta.fetcher.type “direct” | “client” | “default” (default: “default”)
The implementation used to retrieve metadata from Hive (‘client’ or ‘direct’).

flamy.env.<ENV>.hive.metastore.uri String
Thrift URI of the Hive Metastore. Required in client mode of the meta.fetcher.

flamy.env.<ENV>.hive.metastore.jdbc.uri String
JDBC URI of the Hive Metastore database. Required in direct mode of the meta.fetcher.

flamy.env.<ENV>.hive.metastore.jdbc.user String (default: “flamy”)
JDBC user to use when connecting to the Hive Metastore database. Required in direct mode of the meta.fetcher.

flamy.env.<ENV>.hive.metastore.jdbc.password String (default: “flamyPassword”)
JDBC password to use when connecting to the Hive Metastore database. Required in direct mode of the meta.fetcher.

Other properties

These are additional, less used, properties.

flamy.run.dir.path String (default: “/tmp/flamy-user”)
Set the directory in which all the temporary outputs will be written. By default this is a temporary directory created in /tmp/flamy-$USER.

flamy.run.dir.cleaning.delay Int (default: 24)
Set the number of hours for which all the run directories older than this time laps will be automatically removed. Automatic removal occurs during each flamy command startup.

flamy.regen.use.legacy Boolean (default: false)
Use the old version of the regen.

flamy.io.dynamic.output Boolean (default: true)
The run and regen commands will use a dynamic output, instead of a static output. Only work with terminals supporting ANSI escape codes.

flamy.io.use.hyperlinks Boolean (default: true)
Every file path that flamy prints will be formatted as a url. In some shells, this allows CTRL+clicking the link to open the file.

flamy.auto.open.command String (default: “xdg-open” on Linux, “open” on Mac OSX)
Some commands like ‘show graph’ generate a file and automatically open it. Use this option to specify the command to use when opening the file,or set it to an empty string to disable the automatic opening of the files.

flamy.auto.open.multi Boolean (default: false)
In addition with auto.open.command, this boolean flag indicates if multiple files should be open simultaneously.

flamy.verbosity.level “DEBUG” | “INFO” | “WARN” | “ERROR” | “SILENT” (default: “INFO”)
Controls the verbosity level of flamy.